package com.jrx.anytxn.param.service.rights;

import com.jrx.anytxn.common.exception.TxnException;
import com.jrx.anytxn.i18n.response.TxnPage;
import com.jrx.anytxn.param.dto.operation.PrPriceLabelReq;
import com.jrx.anytxn.param.dto.operation.PrPriceLabelRes;
import com.jrx.anytxn.param.entity.PrPriceLabel;

/**
 * @author 张靖烽
 * @name IPrPriceLabelService
 * @description 定价标签表接口层
 * @create 2020-12-08 17:04
 **/
public interface IPrPriceLabelService
{
    /**
     * 根据租户ID分页查询
     *
     * @param pageNum  页码
     * @param pageSize 页大小
     * @param tenantId 租户ID
     * @return TxnPage<PrPriceLabelRes>
     * @throws TxnException txn
     * @author 张靖烽
     * @create 2020-12-08 17:11
     */
    TxnPage<PrPriceLabelRes> getAllPriceLabelByTenId(Integer pageNum, Integer pageSize, String tenantId) throws TxnException;

    /**
     * 根据定价标签表ID和租户Id查询
     *
     * @param labelCode 标签代码
     * @param tenantId 租户ID
     * @return PrPriceLabelRes
     * @throws TxnException txn
     * @author 张靖烽
     * @create 2020-12-08 17:11
     */
    PrPriceLabelRes getByLabelCodeAndTenId(String labelCode, String tenantId) throws TxnException;

    /**
     * 增加定价标签表信息
     *
     * @param prPriceLabelReq 定价标签实体
     * @return PrPriceLabelRes
     * @throws TxnException txn
     * @author 张靖烽
     * @create 2020-12-08 17:11
     */
    PrPriceLabelRes addPriceLabel(PrPriceLabelReq prPriceLabelReq) throws TxnException;

    /**
     * 增加定价标签表信息
     *
     * @param prPriceLabelReq 定价标签请求实体
     * @return PrPriceLabelRes
     * @author 张靖烽
     * @create 2020-12-08 17:11
     */
    PrPriceLabelRes modifyPriceLabel(PrPriceLabelReq prPriceLabelReq);

    /**
     * 根据租户ID和定价标签表ID删除信息
     *
     * @param labelCode 标签代码
     * @param tenantId 租户ID
     * @return Boolean
     * @throws TxnException txn
     * @author 张靖烽
     * @create 2020-12-08 17:10
     */
    Boolean removeByLabelCodeAndTenId(String labelCode, String tenantId) throws TxnException;

    /**
     * 根据定价标签表ID和租户Id查询
     *
     * @param labelCode 标签代码
     * @param tenantId 租户ID
     * @return PrPriceLabelRes
     * @author 张靖烽
     * @create 2020-12-08 17:11
     */
    PrPriceLabel findByLabelCodeAndTenId(String labelCode, String tenantId);
}
